Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - OpenGL -> glutSpecialFunc(...) non chiama glutPostRedisplay();
Forum - C/C++ - OpenGL -> glutSpecialFunc(...) non chiama glutPostRedisplay();

Avatar
sarbaturino (Normal User)
Pro


Messaggi: 66
Iscritto: 25/04/2011

Segnala al moderatore
Postato alle 14:20
Domenica, 23/06/2013
Salve..

Vi mostro il mio spezzone di algoritmo:

Codice sorgente - presumibilmente C++

  1. void specialKeyboard( int key, int x, int y){
  2.         bool spostamentoConsentito=false;
  3.  
  4.         if( key == GLUT_KEY_UP ){
  5.                 spostamentoConsentito = personaggio.sposta( muro, Tastiera::AVANTI );
  6.                 if(spostamentoConsentito){
  7.                         camera.sposta( Tastiera::AVANTI );
  8.                         glutPostRedisplay();
  9.                 }
  10.         }
  11.         else if ( key == GLUT_KEY_DOWN ){
  12.                 spostamentoConsentito = personaggio.sposta(muro, Tastiera::DIETRO );
  13.                 if(spostamentoConsentito){
  14.                         camera.sposta( Tastiera::DIETRO);
  15.                         glutPostRedisplay();
  16.                 }
  17.         }
  18. }


La parte logica del mio algoritmo funziona bene, solamente che il

Codice sorgente - presumibilmente Plain Text

  1. glutPostRedisplay()



viene saltato e quindi a sua volta non viene effettuato il redisplay..
Il redisplay viene effettuato una volta quando premo il tasto ed una seconda volta quando lo rilascio, ma quando lo tengo premuto per un tot di tempo, tale "glutPostRedisplay()" non viene chiamato..

A tale problematica, potete aiutarmi????

PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 19:53
Venerdė, 28/06/2013
dovresti inserire un flag che rimane true fino a quando il tasto è premuto, e in un altro ciclo controllare il valore. se true allora chiama glutPostRedisplay.. ma non so quanto ti possa convenire inserire la chiamata nella funzione per l'input della tastiera..! :k:

PM Quote
Avatar
sarbaturino (Normal User)
Pro


Messaggi: 66
Iscritto: 25/04/2011

Segnala al moderatore
Postato alle 11:48
Lunedė, 01/07/2013
Ciao, perdonami il ritardo della mia risposta..
Il problema l'avevo risolto..Praticamente avevo fatto un passaggio per copia invece di un passaggio per riferimento e quindi avevo delle perdite di efficienza e di prestazione del mio progetto..Ora va pių che bene!!!Grazie..

PM Quote